package com.wenwo.service.impl;

import com.alibaba.fastjson.JSON;
import com.wenwo.dto.MethodInvokeInfoDTO;
import com.wenwo.properties.LogCollectUrlProperties;
import com.wenwo.service.LogService;
import com.wenwo.util.HttpRequestUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import java.util.logging.Logger;

/**
 * @program: logging
 * @className: LogServiceImpl.java
 * @description:
 * @author: ZY
 * @create: 2020年08月02日 18:45
 **/
@Slf4j
@Service
public class LogServiceImpl implements LogService {

    /**
     * 异步上报@Log注解的方法调用信息给相关系统
     *
     * @param dto 方法调用信息参数
     */
    @Async
    @Override
    public void logMethodInvokeInfo(MethodInvokeInfoDTO dto) {
        String params = JSON.toJSONString(dto);
        if (log.isDebugEnabled()) {
            log.info("http请求路径：{}, 请求参数：{}", LogCollectUrlProperties.methodInvokeUrl, params);
        }
        HttpRequestUtil.sendPost(LogCollectUrlProperties.methodInvokeUrl, params, null);
    }
}
